import { SearchParams } from './Entity/interface';
import Source from './Entity/Source';
import { PresetField } from './Presets/interface';

export interface SelectSourceProps {
  /**
   * @desc 弹窗宽度,必须指定,否则展示会有问题
   * @default 1136
   */
  modalWidth: number;
  /**
   * @desc 内置预设,用于快速生成配置选项,如果自行设置了menuItems,则预设内容失效
   */
  preSet?: PresetField;
  /**
   * @desc 初始化选中项目
   */
  defaultValue?: Source[];
  /**
   * @desc 前置带入的查询条件
   */
  params?: SearchParams;
  /**
   * @desc table 列 render tradeMap:行业Map
   * **/
  columnsRender?: { tradeMap: Map<string, string> };
  /**
   * @desc 左侧菜单宽度
   * @default 128
   */
  menuLeftWidth?: number;
}

export interface SelectSourceRef {
  submit(): Source[];
  getActiveMenuKey: () => string;
}

export interface SourceSelectModalProps {
  openDep?: number;
  value?: Source[];
  /**
   * @desc 前置带入的表单查询条件
   */
  params?: SearchParams;
  onChange?(value?: Source[], menuActiveKey?: string): void;
  /**
   * @desc 内部的预设标记
   */
  preSet?: SelectSourceProps['preSet'];
  /**
   * @desc 配置了则会放弃定制化预设的内容
   */
  menus?: [];
  open?: boolean;
  onCancel?(): void;
  /**
   * @desc table 列 render tradeMap:行业Map
   * **/
  columnsRender?: { tradeMap: Map<string, string> };
  /**
   * @desc 弹窗宽度,必须指定,否则展示会有问题
   * @default 1136
   */
  modalWidth?: number;
  /**
   * @desc 左侧菜单宽度
   * @default 128
   */
  menuLeftWidth?: number;
}
